﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.XtraEditors;
using System.Windows.Forms;
using System.Data;
using System.Globalization;

namespace GUI
{
   public class TextMessageBox
    {
       /// <summary>
       /// tiêu đề MessageBox Thông Báo
       /// </summary>
       public  string Caption = "Thông Báo";
       /// <summary>
       /// Caption xác nhận khi xóa: Xác nhận
       /// </summary>
       public  string Caption_Confirm = "Xác Nhận";
       /// <summary>
       /// đưa ra Caption thông báo: Lỗi
       /// </summary>
       public string Caption_Fail = "Lỗi";
       /// <summary>
       /// Đưa ra thông báo khi xóa bị lỗi: Thao tác xóa bị lỗi.
       /// </summary>
       public string DeleteFail = "Thao tác xóa bị lỗi.";
       /// <summary>
       /// Đưa ra thông báo xóa và truyền 2 tham số mã và tên
       /// </summary>
       /// <param name="x"></param>
       /// <param name="y"></param>
       /// <returns></returns>
       public  string Delete_Confirm(object x,object y)
       {
         string text=  string.Format("Bạn có chắc muốn xóa Mã:{0} có Tên là:{1} này không?",x,y);
         return text;
       }
       /// <summary>
       /// Đưa ra thông báo trùng mã khi insert và truyền giá trị của mã bị trùng
       /// </summary>
       /// <param name="x"></param>
       /// <returns></returns>
       public string Exist(object x)
       {
           string text = string.Format("Trùng Tên:{0}.Hãy nhập lại.",x);
           return text;
       }
       /// <summary>
       /// đưa ra thông báo mã vẫn dc sử dụng ko xóa được
       /// </summary>
       /// <param name="x"></param>
       /// <returns></returns>
       public string NotDelete(object x)
       {
           string text = string.Format("Mã:{0} đang được sử dụng.Không thể xóa.",x);
           return text;
       }
       /// <summary>
       /// Hiển thị thông báo không có dữ liệu khi sửa hoặc xóa
       /// </summary>
       public string NotData = "Không có dữ liệu!";

       /// <summary>
       /// thông báo ra mà hình khi ng dùng vẫn để con trỏ chuột ở dòng fillter
       /// </summary>
       public string focuesFillter = "Bạn chưa chọn dòng dữ liệu!";

       /// <summary>
       /// sql select * from table where fileName=object
       /// chủ yếu dùng cho câu lệnh tạo bảng
       /// </summary>
       /// <param name="table"></param>
       /// <param name="fileName"></param>
       /// <param name="where"></param>
       /// <returns></returns>
       public string sqlCheckExist(string table, string fileName, object where)
       {
           string sql = string.Format("select * from {0} where {1}=N'" + where + "'", table, fileName);
           return sql;
       }
       public string sqlSelectFile(object fileName1,object fileName2,object table)
       {
           string sql = string.Format("select {0},{1} from {2}",fileName1,fileName2,table);
           return sql;
       }

       #region convert Số
       public  int ToInt(string x)
       {
           try
           {
               return int.Parse(x);
           }
           catch (Exception)
           {
               return 0;
           }
       }
       public int ToInt(object x)
       {
           try
           {
               return Convert.ToInt32(x);
           }
           catch (Exception)
           {
               return 0;
           }
       }
       public decimal ToDecimal(string x)
       {
           try
           {
               return decimal.Parse(x);
           }
           catch (Exception)
           {
               return 0;

           }
       }
       public decimal ToDecimal(object x)
       {
           try
           {
               return Convert.ToDecimal(x);
           }
           catch (Exception)
           {
               return 0;
           }
       }
       public double ToDouble(object x)
       {
           try
           {
               return Convert.ToDouble(x);
           }
           catch (Exception)
           {
               return 0;
           }
       }
       public double ToDouble(string x)
       {
           try
           {
               return double.Parse(x);
           }
           catch (Exception)
           {
               return 0;
           }
       }

       #endregion

       public void Huy_Text(Control ctr)
       {
           if (ctr is TextBox || ctr is TextEdit)
           {
               ctr.Text = string.Empty;
           }
           foreach (Control i in ctr.Controls)
           {
               Huy_Text(i);
           }
       }
       /// <summary> 
       /// -1: date1 nhỏ hơn date2
       ///  0: date1 bằng date2
       ///  1: date1 lớn hơn date2
       /// </summary>
       /// <param name="date1"></param>
       /// <param name="date2"></param>
       /// <returns></returns>

       public  int CompareDate(DateTime date1, DateTime date2)
       {
           if (date1.Day == date2.Day && date1.Month == date2.Month && date1.Year == date2.Year)
               return 0;
           if (date1.Year < date2.Year || (date1.Year == date2.Year && date1.Month < date2.Month) || (date1.Year == date2.Year && date1.Month == date2.Month && date1.Day < date2.Day))
               return -1;
           else
               return 1;

       }

       #region ma tu tang 
       /// <summary>
       /// n:độ dài tiền tố,dataTable bảng cần lấy mã 
       /// </summary>
       /// <param name="n"></param>
       /// <param name="dt"></param>
       /// <returns></returns>
       private int IDTrong(int n,DataTable dt)
       {
           int id = 0;
           if (dt.Rows.Count > 0)
               id = int.Parse(dt.Rows[dt.Rows.Count - 1][0].ToString().Substring(n)) + 1;
           for (int i = 0; i < dt.Rows.Count; i++)
               if (i != int.Parse(dt.Rows[i][0].ToString().Substring(n)))
               {
                   id = i;
                   return id;
               }
           return id;
       }
       /// <summary>
       /// tiền tố,n:độ dài của tiền tố,dt:bảng cần tạo mã
       /// </summary>
       /// <param name="tienTo"></param>
       /// <param name="n"></param>
       /// <param name="dt"></param>
       /// <returns></returns>
       public string AutoID(string tienTo,int n,DataTable dt)
       {
           string id = tienTo;
           int length = 5 - IDTrong(n,dt).ToString().Length;
           for (int i = 0; i < length; i++)
               id += "0";
           id += IDTrong(n,dt).ToString();
           return id;
       }
       //public string AutoID(string tienTo, DataTable dt, string hauTo)
       //{
       //    string id = tienTo;
       //    int length = 4 - IDTrong(dt).ToString().Length;
       //    for (int i = 0; i < length; i++)
       //        id += "0";
       //    id += IDTrong(dt).ToString() + hauTo;
       //    return id;
       //}

       #endregion
       /// <summary>
       /// chuyển chuỗi nguyen van a --->> Nguyen Van A
       /// </summary>
       /// <param name="str"></param>
       /// <returns></returns>
       public string toUpper(string str)
       {
           string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(str);
           return s;
       }
       /// <summary>
       /// Lấy mã nhân viên khi đăng nhập vào hệ thống
       /// </summary>
       public string  MaNhanVien = "NV00001";

       /// <summary>
       /// lấy ngày giờ hệ thống
       /// </summary>
       /// <returns></returns>
       public DateTime GetSystemDate()
       {
           DateTime date = DateTime.Now;
           return date;
       }


    }
}
